The present invention relates to the field of network technology. Specifically, the present invention relates to a method and apparatus for controlling network bandwidth.
With the growth of the Internet, greater demands are being placed on networks, thus causing delays and bottlenecks that may have a severe impact on a user""s quality of service. FIG. 1 illustrates an example of network congestion that may occur on a network today. The network includes multiple nodes, i.e. logical entities that are capable of receiving and transmitting data elements. In this example, data sources and users are nodes on the network. As illustrate, hub 100 is coupled to a network via a T1 line. A variety of data sources are also shown coupled to the network. The network may be any type of network including a Local Area Network (LAN), a Wide Area Network (WAN) or the Internet. Hub 100 may include any device on the network capable of coupling to data sources. An example of hub 100 may be a repeater or a switch in a corporation that connects all traffic between the users in the corporation and the Internet.
As illustrated, the hub is coupled to numerous users (User1 through UserN) accessing data sources 150(1)-150(N) via the T1 connection. Communication that occurs only amongst Users1-N is not affected by the T1 connection because the communication may occur without any of the users having to access any of the data sources via the T1 connection. An example of this type of communication is intranet communications that occur within a corporation, for example. The connection bandwidth of an intranet is generally on the order of 10-100 Mb/sec. This extremely high bandwidth is generally sufficient to handle a large amount of traffic amongst Users1-N without causing network congestion.
The problem of network congestion frequently arises when Users1-N attempt to perform activities that require a connection and interaction with data sources 150(1)-150(N). A T1 connection, in contrast with the intranet example described above, generally provides a bandwidth of approximately 1.5 Mb/sec. This bandwidth is clearly at least an order of magnitude less than the bandwidth available to intranet users. Thus, if User1, for example, attempts to perform transactions with data source 150(1) while UserN simultaneously attempts to perform transactions with data source 150(N), both users share this T1 connection to the network. All other users attempting to connect to data sources 150(1)-150(N) also share this limited T1 connection bandwidth. There is currently no restriction on the amount of bandwidth available to each user, and as such, one user may effectively monopolize the entire bandwidth of the T1 connection.
Thus, depending on the network activity patterns of each of these users, at any given time, the T1 connection between data source 100 and destination 150 may either be overloaded or underutilized. The T1 connection in this illustration is therefore a xe2x80x9cbottleneckxe2x80x9d that may cause severe traffic congestion if all users attempt to perform activities across the network via the T1 line. The problems caused by this scenario vary in degree based on the type of network and the type of protocol being utilized.
In a Transaction Control Protocol (TCP) network, for example, conventional TCP uses an indirect feedback mechanism to infer network congestion. TCP increases a connections"" transmissions rate until it senses a problem such as packet loss, and then it retransmits the prior transmission after backing off for a period of time, resulting in a reduced transmission rate for the connection. TCP uses a sliding window flow control mechanism to increase and decrease the throughput over a network. The sliding window flow control mechanism functions as follows: a sender sends out multiple packets or elements of data, and then waits for an acknowledgment before sending out more data. The receiver acknowledges that it received the data from the sender. The receiver also advertises to the sender how much additional data it can receive. The latter information is known as the receiver""s xe2x80x9cwindow size.xe2x80x9d The window size thus may change from one transmission of data elements to another.
The mechanism described above for TCP clearly handles network congestion problems in only a limited manner, namely by continuously changing the data flow between a sender and a receiver. This mechanism does not, however, handle the allocation of bandwidth amongst various nodes on a network. Thus, in the example of FIG. 1 described above, there is no well-defined means today for controlling the bandwidth available to each of the users coupled to hub 100.
The present invention discloses a method and apparatus for controlling network bandwidth between a first node and a second node on a network. A data element from the first node to the second node is intercepted. The data element comprises a data portion and a header portion including an original window size. The original window size in the header portion of the data element is replaced with a replacement window size, the data portion of the data element remaining unmodified. The data element is then routed to the second node, the header portion of the data element being coupled to the replacement window size.
Other objects, features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description.